ASP.NET Core-এ Routing হলো একটি প্রক্রিয়া যা ইনকামিং HTTP রিকোয়েস্টকে সঠিক Controller এবং Action Method-এর সাথে ম্যাপ করে। এটি ASP.NET Core অ্যাপ্লিকেশনের অন্যতম গুরুত্বপূর্ণ অংশ, কারণ এটি ঠিক করে দেয় যে ব্যবহারকারীর রিকোয়েস্টের উপর ভিত্তি করে অ্যাপ্লিকেশন কীভাবে সাড়া দেবে।
Controller এবং Action Method হলো MVC (Model-View-Controller) আর্কিটেকচারের মৌলিক অংশ, যা অ্যাপ্লিকেশনের লজিক এবং ডেটা প্রসেসিং পরিচালনা করে।
Routing কী?
Routing ASP.NET Core-এ ইনকামিং URL-এর ভিত্তিতে সঠিক Controller এবং Action Method নির্বাচন করার জন্য ব্যবহৃত হয়। এটি Middleware Pipeline-এর অংশ এবং Startup.cs-এ কনফিগার করা হয়। Routing দুটি প্রধান পদ্ধতিতে কাজ করে:
- Convention-based Routing: Routing রুল বা প্যাটার্নের ভিত্তিতে কাজ করে।
- Attribute Routing: Controller এবং Action Method-এর উপরে সরাসরি ডেকোরেটর হিসেবে Route অ্যাট্রিবিউট ব্যবহার করে কাজ করে।
Convention-based Routing
Convention-based Routing হলো একটি রুল-ভিত্তিক পদ্ধতি যেখানে Routing প্যাটার্নগুলো নির্দিষ্টভাবে Startup.cs-এর মধ্যে সংজ্ঞায়িত করা হয়।
উদাহরণ:
Startup.cs ফাইলে নিচের কোডটি দেখুন:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
- pattern:
{controller=Home}/{action=Index}/{id?}{controller=Home}: ডিফল্ট Controller হলোHome।{action=Index}: ডিফল্ট Action Method হলোIndex।{id?}:idএকটি অপশনাল প্যারামিটার।
কাজের পদ্ধতি:
যদি ব্যবহারকারী /Products/Details/5 URL প্রদান করেন:
- Controller:
Products - Action Method:
Details - id:
5
Attribute Routing
Attribute Routing হলো একটি পদ্ধতি যেখানে Routing নিয়মগুলো সরাসরি Controller এবং Action Method-এর উপরে সংজ্ঞায়িত করা হয়। এটি সাধারণত বেশি স্পষ্ট এবং সহজতর হয়।
উদাহরণ:
[Route("products")]
public class ProductsController : Controller
{
[Route("details/{id}")]
public IActionResult Details(int id)
{
// প্রোডাক্টের ডিটেইলস রিটার্ন করুন
return View();
}
}
- Controller Route:
/products - Action Route:
/products/details/{id}
কাজের পদ্ধতি:
যদি ব্যবহারকারী /products/details/10 URL প্রদান করেন:
- Controller:
ProductsController - Action Method:
Details - id:
10
Controller এবং Action Method
Controller কী?
Controller হলো ASP.NET Core-এ একটি ক্লাস, যা ব্যবহারকারীর রিকোয়েস্ট প্রসেস করে এবং উপযুক্ত রেসপন্স প্রদান করে। এটি সাধারণত Controller ক্লাস থেকে ইনহেরিট করে।
Action Method কী?
Action Method হলো Controller-এর একটি মেথড, যা নির্দিষ্ট রিকোয়েস্টের জন্য লজিক প্রসেস করে। Action Method সাধারণত IActionResult বা অন্য কোনো ভ্যালু রিটার্ন করে।
Controller এর উদাহরণ:
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult About()
{
return View();
}
}
কাজের পদ্ধতি:
/Home/Index:Index()Method কল হবে।/Home/About:About()Method কল হবে।
Route Parameters
Routing-এ Route Parameters ব্যবহার করে ডাইনামিক ডেটা পাস করা যায়। এটি Convention-based এবং Attribute Routing-এ উভয় ক্ষেত্রেই কাজ করে।
উদাহরণ:
[Route("products/{id}")]
public IActionResult Details(int id)
{
// ডাটাবেজ থেকে প্রোডাক্টের তথ্য বের করুন
var product = _productService.GetProductById(id);
return View(product);
}
কাজের পদ্ধতি:
- URL:
/products/5 - id:
5
Optional Parameters
Routing-এ প্যারামিটারগুলো Optional করা যায়, যা URL না থাকলেও কাজ করবে।
উদাহরণ:
[Route("products/{id?}")]
public IActionResult Details(int? id)
{
if (id == null)
{
// ডিফল্ট ভিউ রিটার্ন করুন
return View("AllProducts");
}
return View();
}
Default Routes
Routing-এ Default Values সেট করা যায়, যা প্যারামিটার না থাকলে ব্যবহার করা হবে।
উদাহরণ:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
কাজের পদ্ধতি:
- URL:
/→ Controller:Home, Action:Index
Routing Middleware
Routing ASP.NET Core-এ Middleware হিসাবে কাজ করে এবং এটি Startup.cs-এ কনফিগার করতে হয়।
উদাহরণ:
public void Configure(IApplicationBuilder app)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Routing এবং Controller Action ASP.NET Core-এ ব্যবহারকারীর রিকোয়েস্ট পরিচালনা করার একটি শক্তিশালী উপায়। এটি আপনার অ্যাপ্লিকেশনকে আরও ডাইনামিক, ফ্লেক্সিবল এবং ব্যবহারকারীর চাহিদা অনুযায়ী কাস্টমাইজ করার সুযোগ দেয়।
Read more